﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RadowCore.Modelss
{
    struct InputPair
    {
        private string value;
        public string Value
        {
          get { return this.value; }
          set { this.value = value; }
        }


        private string source;
        public string Source
        {
          get { return source; }
          set { source = value; }
        }

        public InputPair(string pvalue, string porginator)
        {
            this.value = pvalue;
            this.source = porginator;
        }
    }

    class LogEntry
    {
        private string m_ProcessID;
        public string ProcessID
        {
            get { return m_ProcessID; }
            set { m_ProcessID = value; }
        }
        
        private string m_ProcessInstanceID;
        public string ProcessInstanceID
        {
            get { return m_ProcessInstanceID; }
            set { m_ProcessInstanceID = value; }
        }
        
        private string m_ActivityID;
        public string ActivityID
        {
            get { return m_ActivityID; }
            set { m_ActivityID = value; }
        }
                
        private string m_Orginator;
        public string Orginator
        {
            get { return m_Orginator; }
            set { m_Orginator = value; }
        }
        
        private DateTime m_StartTimeStamp;
        public DateTime StartTimeStamp
        {
            get { return m_StartTimeStamp; }
            set { m_StartTimeStamp = value; }
        }
        
        private DateTime m_CompleteTimeStamp;
        public DateTime CompleteTimeStamp
        {
            get { return m_CompleteTimeStamp; }
            set { m_CompleteTimeStamp = value; }
        }
        
        private List<InputPair> m_Input;
        public List<InputPair> Input
        {
            get { return m_Input; }
            set { m_Input = value; }
        }
        
        private List<string> m_Output;
        public List<string> Output
        {
            get { return m_Output; }
            set { m_Output = value; }
        }


        public LogEntry()
        {
           
        }

        public LogEntry(string p_ProcessID, string p_ProcessInstanceID, string p_ActivityID, string p_Orginator, DateTime p_StartTimeStamp, List<InputPair> p_Input, DateTime p_CompleteTimeStamp, List<string> p_Output)
        {
            m_ProcessID = p_ProcessID;
            m_ProcessInstanceID = p_ProcessInstanceID;
            m_ActivityID = p_ActivityID;
            m_Orginator = p_Orginator;
            m_StartTimeStamp = p_StartTimeStamp;
            m_Input = p_Input;
            m_CompleteTimeStamp = p_CompleteTimeStamp;
            m_Output = p_Output;
        }

        public LogEntry(string p_ProcessID, string p_ProcessInstanceID, string p_ActivityID, string p_Orginator, DateTime p_StartTimeStamp, List<InputPair> p_Input)
        {
            m_ProcessID = p_ProcessID;
            m_ProcessInstanceID = p_ProcessInstanceID;
            m_ActivityID = p_ActivityID;
            m_Orginator = p_Orginator;
            m_StartTimeStamp = p_StartTimeStamp;
            m_Input = p_Input;
        }

        public LogEntry(string p_ProcessID, string p_ProcessInstanceID, string p_ActivityID, string p_Orginator, DateTime p_StartTimeStamp)
        {
            m_ProcessID = p_ProcessID;
            m_ProcessInstanceID = p_ProcessInstanceID;
            m_ActivityID = p_ActivityID;
            m_Orginator = p_Orginator;
            m_StartTimeStamp = p_StartTimeStamp;
            m_Input = new List<InputPair>();
            m_Output = new List<string>();
        }

       
    }
}
